在程式世界裡,所有的邏輯與運算都是由「資料」組成的。電腦就像一位超快的計算小幫手,但它需要我們告訴它:資料要放在哪裡、屬於什麼型別、要怎麼運算。今天,我們會從 變數 開始,理解「如何用一個名稱保存資料」;接著介紹 基本資料型別(數字、字串、布林值),再延伸到 運算子 的操作。最後,我們會認識 容器型別(list、tuple、set、dict),這些就像資料的「收納工具箱」,能幫我們更有效率地整理與管理資料。
如果把 Day 1 想像成「準備好工作環境」,那麼 Day 2 就是「開始學會放資料、做計算、整理東西」的關鍵一步。只要掌握這些基礎,未來寫程式就能更靈活、更有邏輯。
想像你有一間房間:
透過這些工具,就像把房間整理得井然有序,未來不論要找東西、加東西或比較,都能快速完成。
變數就像貼了標籤的盒子,可以放任何東西進去。
name = "Jerry"
age = 25
height = 181.3
is_student = True
變數名稱 | 放的東西 | 資料型別 |
---|---|---|
name | "Jerry" | 字串 str |
age | 25 | 整數 int |
height | 181.3 | 浮點數 float |
is_student | True | 布林值 bool |
a = 10 #int
b = 3.14 #float
message = "Hello, Python!" #str
name = "Jerry"
print(f"{name} 你好")
age = 25
print(f"你好,我今年 {age} 歲")
print(f"3 加 5 等於 {3 + 5}")
-- 結果:
Python 中,當你在一個運算式中混用不同型別時,會自動轉換型別,這叫做隱性型別轉換。
a = 10 #int
b = 3.5 #float
print(a + b) # 13.5
print(type(a + b)) # <class 'float'>
-- 可知 a+b 的過程中從int切換成float
print(True) # True
print(False) # False
print(int(True)) # 1
print(int(False)) # 0
print(True + 5) # 6
print(False * 10) # 0
x = 7
y = 2
print(x / y) # 3.5
運算類型 | 轉換後類型 | 說明 |
---|---|---|
int + float | float | 保留小數精度 |
bool + int | int | True 為 1,False 為 0 |
int / int | float | 除法回傳浮點數 |
bool + float | float | 最終結果為 float |
age = 25
print("你今年" + age + "歲") # TypeError
-- 結果:
改用顯性轉型或 f-string:
print("你今年" + str(age) + "歲")
print(f"你今年 {age} 歲")
Python 只對「安全」的型別進行隱性轉換,否則會要求程式設計師自行轉型。
運算子 | 意義 | 範例 (a = 10 , b = 3 ) |
---|---|---|
+ |
加法 | a + b → 13 |
- |
減法 | a - b → 7 |
* |
乘法 | a * b → 30 |
/ |
除法 | a / b → 3.333... |
// |
整除 | a // b → 3 |
% |
餘數 | a % b → 1 |
** |
次方 | a ** b → 1000 |
運算子 | 意義 | 範例 |
---|---|---|
== |
相等 | a == b |
!= |
不相等 | a != b |
> |
大於 | a > b |
< |
小於 | a < b |
>= |
大於等於 | a >= b |
<= |
小於等於 | a <= b |
fruits = ["apple", "banana", "cherry"]
print(fruits[0]) # 則會印出 apple
fruits.append("orange") # .append 指令是將orange加入fruits清單裡面
print(fruits) # ['apple', 'banana', 'cherry', 'orange']
person = {
"name": "Jerry",
"age": 25
}
print(person["name"]) # Jerry
print(person.get("name")) # Jerry
print(person.get("height")) # None
print(person.get("height", 0)) # 0 (預設值)
colors = ("red", "green", "blue")
print(colors[0]) # red
# colors[0] = "yellow" # 錯誤!tuple 不可修改
nums = {1, 2, 3, 2, 1}
print(nums) # {1, 2, 3}
print(len(nums)) # 3
print(2 in nums) # True
nums.add(4)
print(nums) # {1, 2, 3, 4}
類型 | 是否有順序 | 可否重複 | 可否修改 | 查詢方式 | 自動去重 |
---|---|---|---|---|---|
list | 有 | 可 | 可 | 索引 [i] | 否 |
tuple | 有 | 可 | 否 | 索引 [i] | 否 |
set | 無 | 否 | 可 | in 運算子 | 是 |
dict | 無 | key 唯一 | 可 | 鍵 [key] | 是(key) |